# 使用模块
#!/usr/bin/env python3
# '#!/usr/bin/env python3' 表示该文件直接在Unix/Linux/Mac上运行
# -*- coding: utf-8 -*-
# ‘# -*- coding: utf-8 -*-’ 表示.py文件本身使用标准UTF-8编码；

'a test module'  # 表示模块的文档注释，任何模块代码的第一个字符串都被视为模块的文档注释；
__author__ = 'Daniel'  # 变量把作者写进去，这样当你公开源代码后别人就可以瞻仰你的大名；

import sys
def test(): #sys模块有一个argv变量，用list存储了命令行的所有参数
    args = sys.argv #argv至少有一个元素，因为第一个参数永远是该.py文件的名称
    if len(args) == 1:
        print('hello world')
    elif len(args) == 2:
        print('hello %s!' % args[1])
    else:
        print('Too many argments!')
if __name__ == '__main__':
    test()

#作用域：
'''
正常的函数和变量名是公开的（public），可以被直接引用，比如：abc，x123，PI等；
类似__xxx__这样的变量是特殊变量，可以被直接引用，但是有特殊用途，比如上面的__author__，__name__就是特殊变量，hello模块定义的文档注释也可以用特殊变量__doc__访问，我们自己的变量一般不要用这种变量名；
类似_xxx和__xxx这样的函数或变量就是非公开的（private），不应该被直接引用，比如_abc，__abc等；
，private函数和变量“不应该”被直接引用，而不是“不能”被直接引用，是因为Python并没有一种方法可以完全限制访问private函数或变量
'''
#外部不需要引用的函数全部定义成private，只有外部需要引用的函数才定义为public。